import { reactive } from "./reactive.js";
import { effect } from "./effect/effect.js";

const obj = {
  a: 1,
  b: 2,
  c: {
    d: 4,
  },
};
const proxy = reactive([1, 2, obj]);
// proxy[5] = 12
// proxy.length = 1
// proxy.push(3)

// effect(() => {
//   console.log("fn");
//   proxy.a = proxy.a + 1;
// });
// proxy.a = 100;

// effect(() => {
//   if (proxy.a === 1) {
//     proxy.b;
//   } else {
//     proxy.c;
//   }
//   console.log("执行了函数1");
// });
// effect(() => {
//   console.log(proxy.c);
//   console.log("执行了函数2");
// });
// proxy.a = 2;
// // proxy.c = 2;
// proxy.b = 2;

// 懒执行
// function fn() {
//   console.log("fn");
//   proxy.a = proxy.a + 1;
// }
// const effectFn = effect(fn, {
//   lazy: true,
// });
// proxy.a = 100;
// effectFn(); // 只有在执行了这个函数之后，才会建立依赖关系